package com.gosling.cloudspace.common.constants;

/**
 * HTTP状态码
 *
 * @email 1793327033@qq.com
 * @classname CommonCodeEnum
 * @author: osc_lihonglin
 * @date: 2021/6/23 22:05
 */
public enum CommonCodeEnum {
    // 成功段0
    SUCCESS(0, "操作成功"),
    LOGOUT_SUCCESS(900, "操作成功"),
    REGISTRY_SUCCESS(0, "用户注册成功"),
    // 登录段1~50,
    NEED_LOGIN(1, "您没有权限，需要登录后操作"),
    LOGIN_PASSWORD_ERROR(2, "用户名或密码错误"),
    USER_ERROR(3, "该用户已被注册"),
    VALIDATE_CODE_ERROR(4, "验证码校验异常"),
    NULL_LOCAL_ERROR(5, "未查询到当前用户"),
    WX_PAY_ERROR(5, "微信支付异常！"),
    // TOKEN50~100,
    TOKEN_INVALID(50, "无效的TOKEN"),
    TOKEN_EXPIRE(51, "TOKEN已过期"),
    TOKEN_REQUIRE(52, "TOKEN是必须的"),
    // SIGN验签 100~120
    SIGN_INVALID(100, "无效的SIGN"),
    SIG_TIMEOUT(101, "SIGN已过期"),
    // 参数错误 500~1000
    PARAM_REQUIRE(500, "缺少参数"),
    PARAM_INVALID(501, "无效参数"),
    PARAM_IMAGE_FORMAT_ERROR(502, "图片格式有误"),
    PARAM_CONTENT_FORMAT_ERROR(504, "内容有误"),
    SERVER_ERROR(503, "服务器内部错误"),
    MESSAGE_SAVE_ERROR(504, "消息保存失败"),
    // 数据错误 1000~2000,
    DATA_EXIST(1000, "数据已经存在"),
    AP_USER_DATA_NOT_EXIST(1001, "ApUser数据不存在"),
    DATA_NOT_EXIST(1002, "数据不存在"),
    // 数据错误 3000~3500
    NO_OPERATOR_AUTH(3000, "无权限操作"),
    NEED_ADMIND(3001, "需要管理员权限"),
    PARAM_TROUBLE(3089, "网络延迟"),
    //默认错误
    ERROR(-1, "非常抱歉，服务器暂时无法响应您的请求，请稍后再次尝试操作。"),
    FRIENDLY_TIPS(-1, "非常抱歉，服务器暂时无法响应您的请求，请稍后再次尝试操作。");

    int code;
    String errorMessage;

    CommonCodeEnum(int code, String errorMessage) {
        this.code = code;
        this.errorMessage = errorMessage;
    }

    /**
     * 根据返回校验码 获取当前异常
     *
     * @param msgCode
     * @return
     */
    public static CommonCodeEnum getByCode(int msgCode) {
        for (CommonCodeEnum commonCodeEnum : values()) {
            if (commonCodeEnum.code == msgCode) {
                return commonCodeEnum;
            }
        }
        return SUCCESS;
    }

    public int getCode() {
        return code;
    }

    public String getErrorMessage() {
        return errorMessage;
    }
}
